package com.allwees.bs.module.ops.req;

import com.allwees.bs.core.model.user.constant.ECouponDefOverdueType;
import com.allwees.bs.core.modelbase.req.BoCrudReq;
import com.allwees.bs.core.modelbase.validate.ValidateItem;
import com.allwees.bs.module.ops.entity.CouponDef;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;

@Data
@EqualsAndHashCode(callSuper = true)
public class CouponDefCrudReq extends BoCrudReq<CouponDef> {

    private static final long serialVersionUID = 5638857294442909673L;

    @Override
    public ValidateItem[] getValidateItems() {
        return ArrayUtils.addAll(
                new ValidateItem[] {
                        new ValidateItem(bo == null, "bo cannot be a null"),
                        new ValidateItem(StringUtils.isBlank(bo.getName()), "name 不能为空"),
                        new ValidateItem(bo.getType() == null, "type 不能为空"),
                        new ValidateItem(bo.getOverdueType() == null, "overdueType 不能为空"),
                        new ValidateItem(bo.getFaceValue() == null, "faceValue 不能为空"),

                        new ValidateItem(ECouponDefOverdueType.FIXED.equals(bo.getOverdueType()) && bo.getFixedStartTime() == null, "逾期日期类型为固定日期时，fixedStartTime 不能为空"),
                        new ValidateItem(bo.getOverdueValue() == null, "overdueValue不能为空"),
                        new ValidateItem(bo.getOverdueValueUnit() == null, "overdueValueUnit不能为空"),

                        new ValidateItem(bo.getCount() == null, "count不能为空"),
                        new ValidateItem(bo.getUseType() == null, "useType不能为空"),
                        new ValidateItem(bo.getSingleUserReceiveMaxCount() == null, "singleUserReceiveMaxCount不能为空"),
                },
                super.getValidateItems()
        );
    }
}
